﻿//PlazaMcxCommonColumns.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Plaza.Metadata
{
	using System;

	/// <summary>
	/// Колонки таблицы, содержащей общую информацию по инструментам.
	/// MCXSPOT_MDCOMMON_REPL - таблица COMMON.
	/// MCXCC_MDCOMMON_REPL - таблица COMMON.
	/// </summary>
	public abstract class PlazaMcxCommonColumns : PlazaColumns
	{
		internal PlazaMcxCommonColumns(string tableId)
			: base(tableId)
		{
			SecBoard = new PlazaColumn(TableId, "SECBOARD", "c4");
			SecCode = new PlazaColumn(TableId, "SECCODE", "c12");
			Bid = new PlazaColumn(TableId, "BID", "d16.6");
			BidDepth = new PlazaColumn(TableId, "BIDDEPTH", typeof(int));
			BidDepthTotal = new PlazaColumn(TableId, "BIDDEPTHT", typeof(int), false);
			BidsNumber = new PlazaColumn(TableId, "NUMBIDS", typeof(int), false);			
			Offer = new PlazaColumn(TableId, "OFFER", "d16.6");
			OfferDepth = new PlazaColumn(TableId, "OFFERDEPTH", typeof(int));
			OfferDepthTotal = new PlazaColumn(TableId, "OFFERDEPTHT", typeof(int), false);
			OffersNumber = new PlazaColumn(TableId, "NUMOFFERS", typeof(int), false);
			Open = new PlazaColumn(TableId, "OPEN", "d16.6");
			High = new PlazaColumn(TableId, "HIGH", "d16.6");
			Low = new PlazaColumn(TableId, "LOW", "d16.6");
			Last = new PlazaColumn(TableId, "LAST", "d16.6");
			Change = new PlazaColumn(TableId, "CHANGE", "d16.6", false);
			Quantity = new PlazaColumn(TableId, "QTY", typeof(int));
			Time = new PlazaColumn(TableId, "TIME", typeof(DateTime));
			VolToday = new PlazaColumn(TableId, "VOLTODAY", typeof(long), false);
			ValToday = new PlazaColumn(TableId, "VALTODAY", typeof(long), false);
			Value = new PlazaColumn(TableId, "VALUE", "d16.2", false);
			WaPrice = new PlazaColumn(TableId, "WAPRICE", "d16.6", false);
			HighBid = new PlazaColumn(TableId, "HIGHBID", "d16.6", false);
			LowOffer = new PlazaColumn(TableId, "LOWOFFER", "d16.6", false);
			NumTrades = new PlazaColumn(TableId, "NUMTRADES", typeof(long), false);
			YieldAtWaPrice = new PlazaColumn(TableId, "YIELDATWAPRICE", "d16.2", false);
			PriceMinusPrevWaPrice = new PlazaColumn(TableId, "PRICEMINUSPREVWAPRICE", "d16.6", false);
			ClosePrice = new PlazaColumn(TableId, "CLOSEPRICE", "d16.6", false);
			CloseYield = new PlazaColumn(TableId, "CLOSEYIELD", "d16.2", false);
			LastBid = new PlazaColumn(TableId, "LASTBID", "d16.6", false);
			LastOffer = new PlazaColumn(TableId, "LASTOFFER", "d16.6", false);
			LastSettleCode = new PlazaColumn(TableId, "LASTSETTLECODE", "c12", false);
			MarketPrice = new PlazaColumn(TableId, "MARKETPRICE", "d16.6", false);
			MarketPriceToday = new PlazaColumn(TableId, "MARKETPRICETODAY", "d16.6", false);
			Duration = new PlazaColumn(TableId, "DURATION", "d16.2", false);
			SettleCode = new PlazaColumn(TableId, "SETTLECODE", "c12", false);
			LOpenPrice = new PlazaColumn(TableId, "LOPENPRICE", "d16.6", false);
			LCurrentPrice = new PlazaColumn(TableId, "LCURRENTPRICE", "d16.6", false);
			LClosePrice = new PlazaColumn(TableId, "LCLOSEPRICE", "d16.6", false);
			MarketPrice2 = new PlazaColumn(TableId, "MARKETPRICE2", "d16.6", false);
			AdmittedQuote = new PlazaColumn(TableId, "ADMITTEDQUOTE", "d16.6", false);
			OpenPeriodPrice = new PlazaColumn(TableId, "OPENPERIODPRICE", "d16.6", false);
		}

		/// <summary>
		/// Идентификатор режима торгов для финансового инструмента.
		/// </summary>
		public readonly PlazaColumn SecBoard;

		/// <summary>
		/// Идентификатор финансового инструмента.
		/// </summary>
		public readonly PlazaColumn SecCode;

		/// <summary>
		/// Лучшая котировка на покупку.
		/// </summary>
		public readonly PlazaColumn Bid;

		/// <summary>
		/// Объем заявок на покупку по лучшей котировке, выраженный в лотах.
		/// </summary>
		public readonly PlazaColumn BidDepth;

		/// <summary>
		/// Объем всех заявок на покупку в очереди Торговой Системы, выраженный в лотах.
		/// </summary>
		public readonly PlazaColumn BidDepthTotal;

		/// <summary>
		/// Количество заявок на покупку в очереди Торговой системы.
		/// </summary>
		public readonly PlazaColumn BidsNumber;

		/// <summary>
		/// Лучшая котировка на продажу.
		/// </summary>
		public readonly PlazaColumn Offer;

		/// <summary>
		/// Объем заявок на продажу по лучшей котировке, выраженный в лотах.
		/// </summary>
		public readonly PlazaColumn OfferDepth;

		/// <summary>
		/// Объем всех заявок на продажу в очереди Торговой Системы, выраженный в лотах.
		/// </summary>
		public readonly PlazaColumn OfferDepthTotal;

		/// <summary>
		/// Количество заявок на продажу в очереди Торговой системы.
		/// </summary>
		public readonly PlazaColumn OffersNumber;

		/// <summary>
		/// Цена первой сделки.
		/// </summary>
		public readonly PlazaColumn Open;

		/// <summary>
		/// Максимальная цена сделки.
		/// </summary>
		public readonly PlazaColumn High;

		/// <summary>
		/// Минимальная цена сделки.
		/// </summary>
		public readonly PlazaColumn Low;

		/// <summary>
		/// Цена последней сделки.
		/// </summary>
		public readonly PlazaColumn Last;

		/// <summary>
		/// Изменение цены последней сделки по отношению к цене последней сделки предыдущего торгового.
		/// </summary>
		public readonly PlazaColumn Change;

		/// <summary>
		/// Объем последней сделки, в лотах.
		/// </summary>
		public readonly PlazaColumn Quantity;

		/// <summary>
		/// Время заключения последней сделки.
		/// </summary>
		public readonly PlazaColumn Time;

		/// <summary>
		/// Объем совершенных сделок, выраженный в единицах ценных бумаг.
		/// </summary>
		public readonly PlazaColumn VolToday;

		/// <summary>
		/// Объем совершенных сделок, выраженный в руб.
		/// </summary>
		public readonly PlazaColumn ValToday;

		/// <summary>
		/// Объем последней сделки, в руб.
		/// </summary>
		public readonly PlazaColumn Value;

		/// <summary>
		/// Средневзвешенная цена.
		/// </summary>
		public readonly PlazaColumn WaPrice;

		/// <summary>
		/// Наибольшая цена спроса в течение торговой сессии.
		/// </summary>
		public readonly PlazaColumn HighBid;

		/// <summary>
		/// Наименьшая цена предложения в течение торговой сессии.
		/// </summary>
		public readonly PlazaColumn LowOffer;

		/// <summary>
		/// Количество сделок за торговый день.
		/// </summary>
		public readonly PlazaColumn NumTrades;

		/// <summary>
		/// Доходность по средневзвешенной цене.
		/// </summary>
		public readonly PlazaColumn YieldAtWaPrice;

		/// <summary>
		/// Цена последней сделки (LAST) к оценке предыдущего дня (PREVWAPRICE).
		/// </summary>
		public readonly PlazaColumn PriceMinusPrevWaPrice;

		/// <summary>
		/// Цена послеторгового периода.
		/// </summary>
		public readonly PlazaColumn ClosePrice;

		/// <summary>
		/// Доходность по цене послеторгового периода.
		/// </summary>
		public readonly PlazaColumn CloseYield;

		/// <summary>
		/// Лучшая котировка на покупку на момент завершения нормального периода торгов.
		/// </summary>
		public readonly PlazaColumn LastBid;

		/// <summary>
		/// Лучшая котировка на продажу на момент завершения нормального периода торгов.
		/// </summary>
		public readonly PlazaColumn LastOffer;		
		
		/// <summary>
		/// Код расчетов по последней сделке.
		/// </summary>
		public readonly PlazaColumn LastSettleCode;
		
		/// <summary>
		/// Рыночная цена ценной бумаги по результатам торгов предыдущего дня, за одну ценную бумагу.
		/// </summary>
		public readonly PlazaColumn MarketPrice;

		/// <summary>
		/// Рыночная цена по результатам торгов сегодняшнего дня, за одну ценную бумагу.
		/// </summary>
		public readonly PlazaColumn MarketPriceToday;
		
		/// <summary>
		/// Дюрация.
		/// </summary>
		public readonly PlazaColumn Duration;

		/// <summary>
		/// Код расчетов по умолчанию для данного инструмента.
		/// </summary>
		public readonly PlazaColumn SettleCode;
		
		/// <summary>
		/// Цена открытия.
		/// </summary>
		/// <remarks>
		/// Не используется.
		/// </remarks>
		public readonly PlazaColumn LOpenPrice;

		/// <summary>
		/// Официальная текущая цена, рассчитываемая как средневзвешенная цена сделок заключенных за последние 10 минут.
		/// </summary>
		public readonly PlazaColumn LCurrentPrice;
		
		/// <summary>
		/// Официальная цена закрытия, рассчитываемая по методике ФСФР как средневзвешенная цена сделок за последние 10 минут торговой сессии, включая сделки послеторгового периода.
		/// </summary>
		public readonly PlazaColumn LClosePrice;

		/// <summary>
		/// Рыночная цена 2, рассчитываемая в соответствии с методикой ФСФР.
		/// </summary>
		public readonly PlazaColumn MarketPrice2;
		
		/// <summary>
		/// Признаваемая котировка, рассчитываемая в соответствии с методикой ФСФР.
		/// </summary>
		public readonly PlazaColumn AdmittedQuote;

		/// <summary>
		/// Цена предторгового периода.
		/// </summary>
		public readonly PlazaColumn OpenPeriodPrice;
	}
}
